package com.cskaoyan.javase.array._4exception._3length;

/**
 * 小案例
 * @since 14:49
 * @author wuguidong@cskaoyan.onaliyun.com
 */
public class Demo2 {
    public static void main(String[] args) {
        int[] result = getResult(-1);
        switch (result.length) {
            case 0:
                System.out.println("没有结果,说明num小于0");
                break;
            case 1:
                System.out.println("有一个结果,结果是" + result[0]);
                break;
            case 2:
                System.out.println("有两个个结果,结果分别是" + result[0] + ", " + result[1]);
                break;
        }
    }

    /*
        需求:
            写一个方法,根据传入的num的大小,给出不同的结果
            如果num > 0,那就输出两个结果: 1和2
            如果num = 0,那就输出一个结果: 1
            如果num < 0,那就没有任何结果

            Java的方法返回值,最多返回一个值,不可能直接返回两个值
            所以这里需要返回一个容器(数组)

     */
    public static int[] getResult(int num) {
        /*
            对于有返回值的方法,如果返回值需要在方法内部进行各种操作再输出
            这时建议可以预先定义出这个结果值,然后做操作
            最后返回
         */
        int[] result = new int[0];
        if (num > 0) {
            result = new int[]{1, 2};
            return result;
        }
        // Missing return statement
        if (num == 0) {
            result = new int[]{1};
            return result;
        }
        /*
            num<0时,方法不给出任何结果
            对于数组而言,有两种选择
                1.可以返回null
                2.可以返回长度为0的数组
            以上两种选择都可以,可以根据实际情况具体选择
          */
        return result;
    }
}
